#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin >> t;
while (t--)
{
int a=0 ,b=0,x=0;
int n, m;
cin >> n >> m;
string s, t;
cin >> s >> t;
if (n == 1)
{
cout << "Yes" << endl;
x++;
}
else
{
int count = 0, count2 = 0;
for (int i = 0; i < s.size() - 1; i++)
{
if (s[i] == s[i + 1])
{
if (s[i] == '0' && count == 0 && b==0)
{
vector<char>z;
z.push_back(s[i]);
for (int j = 0; j < t.size(); j++)
{
z.push_back(t[j]);
}
z.push_back(s[i]) ;
for (int j = 0; j < z.size() - 1; j++)
{
if (z[j] == z[j + 1])
{
cout << "No" << endl;
a++;
break;
}
}
count++;
}
else
{
if (s[i] == '1' && count2 == 0 && a==0)
{
vector<char>z;;
z.push_back(s[i]);
for (int j = 0; j < t.size(); j++)
{
z.push_back(t[j]) ;
}
z.push_back(s[i]);
for (int j = 0; j < z.size() - 1; j++)
{
if (z[j] == z[j + 1])
{
cout << "No" << endl;
b++;
break;
}
}
count2++;
}
}
}
}
}
if (a == 0 && b == 0 && x==0)
{
cout << "Yes"<<endl;
}
}
}
1302. Deepest Leaves Sum | 1209. Remove All Adjacent Duplicates in String II |
994. Rotting Oranges | 983. Minimum Cost For Tickets |
973. K Closest Points to Origin | 969. Pancake Sorting |
967. Numbers With Same Consecutive Differences | 957. Prison Cells After N Days |
946. Validate Stack Sequences | 921. Minimum Add to Make Parentheses Valid |
881. Boats to Save People | 497. Random Point in Non-overlapping Rectangles |
528. Random Pick with Weight | 470. Implement Rand10() Using Rand7() |
866. Prime Palindrome | 1516A - Tit for Tat |
622. Design Circular Queue | 814. Binary Tree Pruning |
791. Custom Sort String | 787. Cheapest Flights Within K Stops |
779. K-th Symbol in Grammar | 701. Insert into a Binary Search Tree |
429. N-ary Tree Level Order Traversal | 739. Daily Temperatures |
647. Palindromic Substrings | 583. Delete Operation for Two Strings |
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |